namespace NPD_GEN_MUST {

	namespace bad {
	
		void xstrcpy(char* dst, char* src) {
			if (!src) return;
			dst[0] = src[0];
		}

		char global_buf[256];

		void npd_gen_must(int flag) {
			char* p = global_buf;
			if (flag) p = 0; // NULL is assigned to p
			xstrcpy(p, (char*)"Hello");
		}
	}
	namespace good {

		void xstrcpy(char* dst, char* src) {
			if (!src) return;
			if (!dst) return;
			dst[0] = src[0];
		}

		char global_buf[256];

		void npd_gen_must(int flag) {
			char* p = global_buf;
			if (flag) p = 0;
			xstrcpy(p, (char*)"Hello");
		}
	}
}